Automated centerline detection algorithm for colon-like 3d surfaces

ABSTRACT

A three dimensional image of the colon like surface is processed to determine at least its ring structure. The image is composed of vertex points, each vertex point having a discrete point identifier and three dimensional position information. The three dimensional position information is averaged in a shrinking procedure to contract the three dimensional image proximate to a major axis of the colon-like surface. Evenly spaced points are taken through the shrunken colon like surface and connected to form a curve. Planes are generated at intervals normal to the curve to split the shrunken colon like surface into image segments. By mapping these image segments back to the original image through their discrete point identifiers, an accurate ring profile of the colon like surface can be generated.

This invention relates to virtual colonoscopy and includes processingcomputer tomographic image slices of the patient. The disclosure assumesthe procurement of a three dimensional image of the colon like surfaceof vertex points distributed along an elongate major axis, each vertexpoint having a discrete point identifier and three dimensional positioninformation. In this disclosure, an accurate ring profile of the colonlike surface can be generated. Utilizing the accurate ring profile,reconstruct the 3D surface of the colon, serially view the coloncross-section for anomalies such as polyps and thus provide bothnon-invasive colon screening together with the positional informationneeded for follow up conventional colonoscopy.

BACKGROUND OF THE INVENTION

Virtual Colonoscopy is a relatively new field in medicine and consistsin processing the computer tomographic (CT) image planes or “slices” ofthe patient rather than the traditional and invasive colonoscopicinspection. By segmenting the original parallel CT slices, it ispossible to reconstruct the 3D surface of the colon and thus provide theinformation needed for Colonoscopy. Such a process is disclosed inSummers et al. U.S. Pat. No. 6,246,748 issued Jun. 12, 2001 and entitledMethod for Segmenting Medical Images and Detecting Surface Anomalies inAnatomical Structures. This disclosure assumes as a starting point thatan image similar to that produced by Summers et al '748 is produced.

Assuming the presence of such an image, further processing of the imagesuch as detecting the centerline of the colon is still a challengingproblem. The following articles are representative of relevant imageprocessing techniques that can be used to address this problem:

Gabriel Taubin, “Curve and Surface Smoothing without Shrinkage”, IEEE(1995);

Ingmar Bitter, et al., “Penalized-Distance Volumetric SkeletonAlgorithm”, IEEE Transactions on Visualization and Computer Graphics,Vol.7, No. 3, July—September 2001;

Ge, Y., D. R. Stelts, et al., “Computing the centerline of a colon; arobust and efficient method based on 3D skeletons”, J Comput AssistTomogr, 23(5): 786-94 (1999);

Jie Wang, Yaorong Ge, “An Optimization problem in Virtual Colonoscopy”,Theoretical Computer Science, Elsevier Science B. V., pp 203-216 (1998);

Yaorong Ge, et al., “Computing the Centerline of a Colon: a Robust andEfficient Method Based on 3D Skeletons”, Journal of Computer AssistedTomography, 23(5):786-794 (1999);

Rui Chiou, et al., “An Interactive Fly-Path Planning Using PotentialFields and Cell Decomposition for Virtual Endoscopy”, IEEE Transactionson Nuclear Science, Vol 46, No. 4, August 1999;

David Paik, et al., “Automated flight path planning for virtualendoscopy”, American Assoc Of Physicists in Medicine (1998);

C. L. Wyatt, et al., “Automatic Segmentation of the Colon for VirtualColonoscopy”, Elsevier Science (2000);

Elisabeth McFarland, et al., “Spiral Computed Tomographic Colonography:Determination of the Central Axis and Digital Unravelling of the Colon”,Technical Report, Acad. Radiology, 4:367-373 (1997);

Roel Truyen, et al., “Efficacy of automatic path tracking in Virtualcolonoscopy”, Cars 2001—H. U Lemke, et al. (Editors), Elsevier Science(2001).

C. E. Shannon, “A Mathematical Theory of Communication”, Bell SystemTech. J, 379-423 (1948); and

W. J. Schroeder, et al., “Decimation of Triangle Meshes”, ComputerGraphics, 26:26 (1992).

The reader will understand that the colonoscope is the usual instrumentused both for inspection and surgery of the colon. The measurements ofthe colon must be all related to the path of the colonoscope, alwaysfrom the rectum. In making its penetration of the colon, the colon“gathers” the invading colonoscope into the serpentine path of the majoraxis of the colon while the colonoscope “hunts” this path within theconfines of the colon. As a consequence of this well known andunderstood technique of using a colonoscope, relevant measurements takenwith respect to the colon by non-invasive CT scans must all be relatedto penetration of a colonoscope.

Further, scans taken by a colonoscope must be able to be compared tonon-invasive scans taken by computer tomography to establish theefficacy of the non-invasive scans. Likewise, and assuming efficacy ofthe non-invasive scans, the findings of the non-invasive scans must bedirectly translatable to the doctor using colonoscope to be of practicalvalue.

BRIEF SUMMARY OF THE INVENTION

A virtual non-invasive colonoscopy of a colon like surface includesprocessing computer tomographic image slices of the patient. Theprocurement of a three dimensional image of the colon like surface ofvertex points, each vertex point having a discrete point identifier andthree dimensional position information is presumed. The threedimensional position information of all vertex's neighbors is averagedin a shrinking procedure to contract the three dimensional imageproximate to a major axis of the colon-like surface, with the overalllength of the colon along the major axis remaining substantiallyunchanged. Evenly spaced points are taken through the shrunken colonlike surface and connected to form a curve. Planes are generated atintervals normal to the curve to split the shrunken colon like surfaceinto image segments. By mapping these image segments back to theoriginal image through their discrete vertex point identifiers, anaccurate ring profile of the colon like surface can be generated.Utilizing the accurate ring profile, it is possible to compute anaccurate colon centerline, serially view the colon cross-section foranomalies such as polyps and thus provide both non-invasive colonscreening together with the positional information needed for follow upconventional colonoscopy.

As of the filing of this Patent Cooperation Treaty application, animproved technique for modeling of the centerline of the colon includestaking the image of the shrunken colon and choosing and marking a firstrandom vertex. The reader will understand that all vertices on theshrunken image of the colon are by definition very close to the coloncenterline by virtue of the fact of the image being a shrunken image.Once this first random vertex is choosen, all unmarked neighbors of therandom vertex of the shrunken image of the colon are identified andmarked. The identification and marking process is sequentially repeatedfrom each marked neighbor to all unmarked neighbors. When theidentification and marking process propagates a predetermined distance(preferably a multiple of the maximum diameter of the shrunken colon,plus or minus a chosen tolerance), a second random vertex is designated.A third random vertex is chosen at substantially the same interval fromthe first random vertex, but in the opposite direction. Thus, startingwith the first random vertex, marking of the vertices propagates fromthe first random vertex to both ends of the shrunken colon image. Inthis process, all unmarked neighbors of each random vertex areidentified and marked until the process propagates the predetermineddistance, a new random vertex is designated, and marking processcontinued. The marking of vertices thus proceeds from the first randomvertex, located centrally of the colon, to spaced random verticesextending along the colon to the respective ends of the colon at theanal verge and the cecum.

The reader will understand that since we are working on an image of ashrunken colon, all vertices on the surface of the shrunken image mustby definition be very close to the colon centerline. Thus, the shrunkencolon surface, the centerline of the shrunken colon, and the centerlinetaken along the length of the colon are all essentially the same. Theyhave the essentially the same (serpentine) three dimensional position inspace along the length of the colon.

An advantage of this marking system is that it eliminates the use ofvectors in determining the centerline of the colon. The simple processof vertex identification and marking followed by designating verticessystematically tracks the length of the shrunken image of the colon fromthe first random vertex to both colon ends.

In the following disclosure, it is necessary to define terms. Theseterms are:

Colon like surface: This term obviously includes the colon. It includesother surfaces within the human body that are elongate about what can begenerally termed a major axis or axes. Such surfaces can also includeblood vessels, biliary ducts, airways, small intestine, spinal canal andcord.

Major axis or axes: When one views a body structure, such as the colon,an irregular enclosed but generally cylindrical elongate structure isshown. Elongation can be said to occur generally proximate to a majoraxis of the structure. This major axis is not the same as the ultimatelycomputed centerline. Further, this term is used in this disclosure toexpress an intuitive concept perceived by observing the elongate colonstructure.

Vertex point: This is the discrete informational image point thattogether with many other similar image points makes up the initial imageprocessed by this invention. Such vertex points each have a discreteidentifier. Further, the vertex points have three dimensional imageinformation, commonly in Cartesian coordinates. As will be apparent inwhat follows, this disclosure alters the positional information in ashrinking process. The shrinking process leaves the colon like surfacelength substantially unchanged along the major axis but drasticallyshrinks the width of the colon like surface. Once shrinking hasoccurred, the shrunken image is parsed and mapped back to the originalimage utilizing the discrete identifiers.

Shrunken colon like surface: This is a 3D surface, obtained from theoriginally supplied 3D-colon like surface. The shrunken colon is verythin and almost as long as the original colon. The shrunken colon likesurface has the same number of vertices as the original colon and thesame “structure.” The vertices neighborhood relation is the same,indexed (triangle) strip sets are the same.

Stated in theoretical terms, this means that, for every integer “i” and“k”, if vertex Vi (vertex number i) has vertex Vk (vertex number k) as aneighbor in the original colon, there will be a vertex Vi in theshrunken colon that will have a neighbor Vk. The only difference will bein the three dimensional image information. In the “shrunken colon likesurfaces”, the distances from the major axis to the vertex points willbe almost 10 to 100 times smaller in the shrunken colon as in originalcolon image.

Rings: It will be understood that slices of the (original or shrunken)colon like surfaces generally are normal to the major axis of theelongate surface. These slices are deformed cylinders. These cylinderswill be large in the original image and small in the shrunken image andcomposed of vertex points. We also want the axis of these cylinders tobe parallel to (if not included in) the centerline of the original orshrunken colon. When this happens we also refer to such slices as“perpendicular rings.”

Centerline: This is the most useful output of our image manipulation. Itapproximates the gathered path of a colonoscope as it hunts centrally ofthe colon. It is close to the more mathematically elaborated concept ofskeletons. We want the centerline to closely model the inserted profileof the colonoscope, which is semi-rigid and cannot make sharp bends.Intuitively the centerline of a colon-like surface should be the curvethat stays inside the colon and never goes “too close” to the walls.

We use the computed centerline to discriminate various colon areas thatare polyp candidates in order to be able to evaluate the accuracy of thepolyp detection software module, such as that set forth in Summers etal. U.S. Pat. No. 6,246,748 issued Jun. 12, 2001 entitled Method forSegmenting Medical Images and Detecting Surface Anomalies in AnatomicalStructures. Utilizing centerline information realized from the processedoriginal image of the colon like surface, the software-detected polypsare compared with the human detected polyps to both establish efficacyof the disclosed technique and to render the disclosed non-invasivecolonoscopy a useful tool for further colonoscope inspection andsurgery. In most cases, comparison is based on the distance to and fromthe anal verge. These provided values are actually based on the lengthof the colonoscope at the moment of polyp detection.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a perspective view of a typical human colon omitting relatedanatomy illustrating the exterior profile obtained by the disclosure ofSummers et al. U.S. Pat. No. 6,246,748 issued Jun. 12, 2001 and entitledMethod for Segmenting Medical Images and Detecting Surface Anomalies inAnatomical Structures;

FIG. 2A is a two dimension plot of vertex points illustrated along acircular path illustrating shrinkage of the circle by the averagingtechnique of this invention;

FIG. 2B is a two dimensional plot of vertex points illustrated along alinear path illustrating no shrinkage of the linear path by theaveraging technique of this invention;

FIG. 3 is the colon of FIG. 1 having been shrunken by “neighborsaveraging” with about 250 iterations;

FIG. 4 is a schematic of a three dimensional “neighbors averaging”illustrating the alteration of three dimensional position of the vertexpoints along a length of a colon having its local major axis orientedhorizontally;

FIG. 5 is a schematic of a three dimensional “neighbors averaging”illustrating the alteration of three dimensional position along a lengthof a colon having its local major axis undertaking relatively largecurvature;

FIG. 6 is a schematic of vertex points taken along a shrunken colonillustrating how previous selected random vertex points generate both aposition or origination of a vector and a search volume defined aboutthe vector to enable selection of the next random vertex point along thelength of the shrunken colon;

FIG. 7A is a schematic of a search sphere segment taken along a solidangle generated from a vector defined by two previously located randomvertex points;

FIG. 7B is a schematic on a reduced scale illustrating the location ofthe random vertex points along the length of the shrunken colon;

FIG. 8 is a schematic detail illustrating the difficulty of trackingrandom vertex points where the colon-like surface being trackedundertakes a sharp bend;

FIG. 9 is a schematic diagram illustrating the construction of planesnormal to model curve, and passing through points in the curveconstructed from randomly determined data points along the length of theshrunken colon to separate out those vertex points local to a ringsegment of the colon;

FIG. 10 is a schematic illustrating vertex points from between twoplanes taken in FIG. 9 being mapped to the original image of the colon;

FIG. 11A display a ideal ring when the colon is ideal—a twisted cylinderand 11B illustrates the real situation when the rings are not smallcylinders. We also suggest another technique, simpler but different thanaveraging technique that is used in our implementation, for determiningthe centerline of the colon in the real situation: we can compute thecenterline point using the center of the bounding box of the rings;

FIG. 12 illustrates a coordinate Cartesian coordinate conventionsuperimposed upon a typical human colon; and,

FIG. 13 is a schematic illustrating a colon stretched along a linearpath.

FIG. 14 is a schematic of a thinned colon image illustrating theselection of a random vertex point VO illustrating successiveidentification and marking of the neighboring vertex points withpropagation occurring generally from the left to the right of theillustration; and,

FIG. 15 is a schematic of a thinned colon image illustrating designationof a random vertex points from an initially selected first random ofvertex to both colon ends.

DETAILED DESCRIPTION OF THE INVENTION

Referring to FIG. 1, we assume the acquisition of a 3-D image of thecolon like surface such as that disclosed in Summers et al. U.S. Pat.No. 6,246,748 issued Jun. 12, 2001 and entitled Method for SegmentingMedical Images and Detecting Surface Anomalies in Anatomical Structures.We are using the results of the module which process the CT slices andcomputes the 3D surface of the colon in accordance with that disclosure.In this view, the anal verge 14 and the cecum 16 can be seen at eitherend of the colon.

Having acquired such an image, our problem is: given the 3D surface ofthe colon we want to find an (ordered) set of 3D points which define thecolon 's centerline.

The method involves basic steps:

-   -   1) Compute a shrunken version of the colon. Basically the        distances between vertices are iteratively averaged, the result        being a shrunken colon. The shrunken colon is very thin and        almost as long as the original colon.    -   2) Model the shrunken colon by an ordered group of 3D points        along the major axis of the colon. We take equally distanced        arbitrary vertices from the shrunken colon to form a curve        consisting of an ordered group of 3D points. This curve is        generally similar to but may or may not coincide with the major        axes, or the ultimately computed centerline.    -   3) Using the curve of the connected 3D points, we generate        equally distanced planes perpendicular to the curve to define        equal length segments along the shrunken colon We map vertex        points between these planes back to the original image of the        colon to compute ring-like areas in the original colon.    -   4) Using the ring-like areas from the original colon, a        centerline can be computed.

The indices of the vertices from the same segment are used to get aring-like area “slice” from the original colon image. Any such ring-likearea slice is processed to compute the local centerline point. It can beunderstood that the resulting points could be further used for computingbetter slices (“more” perpendicular on the centerline and more straightedged, smoothed or filtered centerline, etc).

The original (not shrunken) colon is thus sliced. Our method could beused to process any similar shape (twisted cylinder). The method doesnot need the original CT slices and it uses only the reconstructed 3Dsurface.

The results are based on colon versions with reduced-number of vertices.This permits us not only to reduce the total processing time but also toimprove the algorithm performances. The shrunken colon model is accurateif the distances between points are much bigger (2-5 times) than theshrunken colon diameter.

To perform the shrinking step, the distances between vertices areiteratively averaged, the result being a shrunken colon. For thepurposes of this disclosure,, the two terms are equivalent; colonshrinking is the same as colon averaging.

As will be explained later in this disclosure the “averaging” techniquetakes place in a three-dimensional basis. Referring to FIGS. 2A and 2B,a simplified explanation of the iterative averaging technique is offeredin two dimensions utilizing for each averaging only two adjacent vertexpoints. While the reader will understand that the iterative averaging isthree-dimensional and includes always more than two vertex points, thefollowing examples are believed to be helpful.

Referring to FIG. 2A, a circle 19 having vertex points 20 through 24 isillustrated. So-called “averaging” of the two-dimensional positions ofthe vertex points 20 through 24 is disclosed. By way of example, theaveraging position of vertex point 21 can be considered. Specifically,the actual two-dimensional position of vertex point 21 is ignored.Instead, in accordance with the averaging technique here disclosed, thenew two-dimensional position of vertex point 21′ is the average of therespective positions of vertex point 20 and vertex point 22. Thisresults in the position of averaged vertex point 21′ being on a chordmidway between vertex point 20 and vertex point 22.

Proceeding further with the two-dimensional analogy illustrated in FIG.2A, this procedure is repeated for all vertex points located aroundcircle 19. The result will be a new set of vertex points 20′ through24′. When these points are all connected with a smooth curve, a new,smaller and concentric circle 19′ will be generated.

It can further be seen that what has been described constitutes only oneiteration. By conducting many iterations, circle 19 can effectively beshrunken to a point. Thus, using this simplistic example, one canunderstand how the essentially cylindrical section of a human colon canbe “shrunk.”

Referring to FIG. 2B, a straight line 29 is shown having vertex points30 through 34 along its length. The same averaging technique is applied.For example vertex point 31 has as its new position the average positionof its vertex neighbors 30 and 32; this “new” position is labeled asvertex point 31′. It is immediately seen that the position of vertexpoint 31 and vertex point 31′ is identical.

Thus the reader will appreciate that line 29 does not shrink.

In what follows, we will apply this illustrated two-dimensionaltechnique to the three-dimensional image. Further, it will be understoodthat “average” positions will constitute three-dimensional averagepositions selected from many more than just two neighbors. Rememberingthat the serpentine colon is elongate along a major axis but generallyirregularly cylindrical in shape, the reader can be given an intuitiveunderstanding of why the iterative averaging process of this inventionresults in the shrunken colon having the same length but considerablyreduced in diameter.

It further will be remembered that each vertex point has at least twoinformation sets. One of these information sets is a discrete identifierfor each vertex point. This discrete identifier for each vertex point isnot altered as a result of the shrinking process. The other of theseinformation sets is the three-dimensional position of the vertex point.This information set is altered as a result of the averaging process.

The disclosed “shrinking” causes all of the vertex points to move to andtowards the major axis of the colon.

Having given an oversimplified example of the averaging technique, amore technical description will be offered.

The pseudo-code for one iteration is: TABLE 1 STEP Description 1) Takeneighbors of Vi 2) Average their coordinates. Get averageX, averageY,averageZ 3) Assign Vi the above computed Vi. X = averageX; Vi.Y =   coordinates: averageY; Vi.Z averageZ

All the operations from Table 1 are repeated for all the vertices of thesurface for a certain number of times. FIG. 1 presents a 3D surface ofthe human colon. FIG. 3 presents the same surface shrunken 250 times.

There are two important side effects of averaging:

-   -   1) Thinning of the whole shape; and,    -   2) Compression of the whole shape (its bounding box is smaller        than the original shape).

It is important to note the effect of thinning is more important thanthat of compression.

Attention is directed to FIG. 4. In this example, the positioninformation of a vertex point is altered utilizing the averagepositional information of its “neighbors.” Thus, the alteration of thepositional information of the vertex points can be referred to as“neighbors averaging.”

As shown in FIG. 4, the contribution of round neighbors 40, 41 (whichare “at the same level” as the current vertex) to the vertex 47 movementis less significant than that of the other two vertices (displayed assquares 42, 43 and which are lower than current vertex). Observing FIG.4, the section of the colon C illustrated is elongate (has its majoraxis 46) in the horizontal. The horizontal change in position due toneighbors averaging is not significant; a larger change of position isobtained perpendicular to the major axis, here on the vertical axis.

If the iteration process is extremely long it is possible to obtain astraight line.

The size of the movement depends actually on the curvature of thesurface; points with greater curvature tend to move more. This ishelpful because by shrinking we actually want to obtain a thin andtwisted surface not a collapsed shape. The reader should understand thatthe shrunken colon is not used as the centerline of the normal colon.

Referring to FIGS. 5A and 5B, it will be seen that the averagingtechnique of this invention does result in some shortening of the lengthof the colon. Points on the tight loops of the colon relative to themajor axis present big curvatures. Thus points 53, 54, will tend tocause point 50 to move away from and even outside of the originalsurface of colon C. Points 51, 52 will tend to cause point 50 to movetoward the inside of the colon C. Other points on the outside of thecurvature of colon C will move toward the inside of the colon.

Table 2 shows some values of the colon bounding-box (normal and shrunkenversion): TABLE 2 Colon type Xmin(cm) Ymin(cm) Zmin(cm) Xmax(cm)Ymax(cm) Zmax(cm) 1 normal 9.94 11.91 4.00 36.88 32.59 47.40 thinned10.43 13.86 5.20 35.89 30.89 44.22 2 normal 8.81 11.26 3.98 33.67 34.1645.90 thinned 12.19 14.43 8.09 30.16 31.43 41.94

We can see that the variation of the bounding box is not as important asthe thinning effect. For example, for colon 1, the “X” variation is:(35.89−10.43)/(36.88−9.94)=25.46/26.94=94.5%

The second step is to get a model of the shrunken colon. Our aim is toobtain a set of 3D points that should approximate the shrunken colon.These points will be used in the next step, when we want to getring-like areas of the colon surface and use them to compute thecenterline.

We use this ordered set of 3D points to reduce the number of verticesprocessed. The ordered set of 3D points is spline interpolated and thecontrol points are used to compute rings. We define a ring as acylinder-like portion of the shrunken colon whose axis is more or lessparallel with the colon model or colon centerline.

A fundamental assumption for our algorithm can be stated: the shrunkencolon centerline and its model are almost the same. This is true if theshrunken colon is thin and the distance between model points is bigger(2-5 times) than the shrunken colon diameter.

We now model the shrunken colon by an ordered group of 3D points alongthe major axis of the colon in accordance with the second step of ourprocedure.

Referring to FIG. 6, the algorithm to extract the points is quitesimple:

-   -   We start with some random vertex point 60 located at the        beginning of the shrunken colon. An easy area to select a random        vertex point is the rectum because of its uniform location and        more or less uniform direction with respect to any image of the        colon. We select a first random vertex point on the rectum. The        next random vertex point 61 selected is a vertex point that is        located at a preselected distance D from the first random vertex        point. This second vertex point and the first vertex point        define a three dimensional direction or vector V. We use this        vector from the second vertex to choose the new (third) vertex        point 62.    -   From now on, every time we want to choose a new vertex we do the        following:        -   compute the new direction or vector (direction=current            vertex−previous vertex);        -   define a search volume VC (see FIG. 6). This volume is the            intersection between (see FIG. 7A):            -   the sphere 65 centered in last chosen vertex and having                a radius equal to the largest preselected distance                allowed between two consecutive vertices;            -   the sphere 66 centered in last chosen vertex and having                a radius equal to the smallest preselected distance                allowed between two consecutive vertices; and,            -   the solid angle 67 central to the vector defined by the                previous and current vertex.

The solid angle could be even more than half a sphere. We use a largesolid angle only to ensure the vertices are following the shrunkencolon. If we do not use the vector V to define the spherical segment forsearch, it is possible to return back and select one of the previousvertex's close neighbors (or even the previous vertex itself). In suchcase it is possible to enter an infinite loop and never be able to endthe colon processing.

It will be understood that the solid angle should be as big as possible(even bigger than half a sphere) to ensure the proper track.

Vertex choosing is random but nevertheless confined to a path generallyalong the major axis of the colon. The first vertex that happens to “be”within the correct search volume (VC) is chosen to be the next vertex.

Our implementation uses typically a two dimensional search angle whosecosine minimum value is between (−0.2; 0.2). This means we areconsidering angle ranges from (−102°, +102°) to (−78°, +78°). See Table3: min(cosine)>−1 is the lowest possible value →maximum angle range:−180° to 180°. TABLE 3 Search Angle Values min(cosine) Range (degrees)Maximum range −1 (−180°, +180°). Range 1 −0.2 (−102°, +102°) Range 2 0.2(−78°, +78°) Minimum range 1 (−00, +0°)

The low limit value depends also on the shrunken colon diameter. Inorder to be able to follow every colon bend, we need the solid angle tobe as large as possible (see FIG. 8). If we take the maximum anglerange, we risk tracking the colon incorrectly (and/or enter a infiniteloop so that we'll never be able to finish data processing).

In FIG. 7A, we displayed a situation when the value of 102° is not good(it is too big). The solid angle delimited spherical segment complieswith our search conditions but is obviously not desired. Usually thissituation doesn't happen because the ratio (distance between twovertices)/(shrunken colon diameter) is much larger. Ideally this ratioshould be very large (in the range of 5-100), as we want the shrunkencolon to be very thin. We have had success with the user selecting thevalue of the solid angle. For most colons, an angle of 102° wassufficient.

The last step is to use the shrunken colon model to compute thecenterline of the real (not shrunken) colon.

Reviewing the disclosure thus far, we have the original colon, itsshrunken version and a model of it (an ordered set of 3D points or acurve). We need to determine an ordered set of points that should stayinside the colon. This set of ordered points should model the centerlineof the colon like surface. For our purposes (polyps candidatesdiscrimination in terms of their distance from origin), it is notnecessary that the centerline be really “central” (provided this couldbe accurately defined). In general (for example to generate a “fly” paththrough virtual colon) if the centerline stays inside the surface of thecolon, this is enough.

With reference to FIG. 9, the main steps are:

-   -   For each Pi of the model    -   Take point Pi and Pi+1 of the model;

Compute the two planes 91, 92 perpendicular on the shrunken colon model(which model is actually a curve). The two planes are computed so thateach of them passes through one of the corresponding points Pi and Pi+1.(see FIG. 9);

-   -   Select all the vertices between these two planes 91, 92 that        belong to the shrunken colon;    -   Map these vertices to the original colon C. Thus and referring        to FIG. 11A, we get vertices that are grouped in ring-like areas        R ring that are perpendicular on the major axis 100 of the        shrunken colon; and,    -   Process these vertices (for example average them or compute the        center of their bounding box 101) (FIGS. 10 and 11).

As a primary matter, it can be seen that we have developed a new methodto “segment” cylindrical shapes of an irregular cylindrical surface,here the human colon. It can be used in general in image segmentation(2D, 3D, etc) and provides an easy and efficient way to process thecolon. To get the centerline we can use any method to process theresulting slices. Further, we can obtain a point or a segment of line102 to uniquely identify that slice. The resulting points or linesegments define the desired centerline. Our needs require mappingdistances determined back to the actual use of the colonoscope (polypsdiscrimination in terms of their distance from the rectum for example).

We have run a software program based on the technique here displayed.This program was run on a Dell Optiplex GX 1p PC with the featuresdescribed in table 4: TABLE 4 Operating Bus Memory Processor FrequencySystem frequency (RAM) Intel Pentium III 550 MHz Windows 100 MHz 255 MBNT 4.004.1 Shrinking

Shrinking the colon is vital for the whole algorithm. Typically a colonsurface has 300000-500000 vertices. Averaging such a great number ofvertices for 1000 times is very time consuming. For example if thenumber of vertices is 350000 and number of iterations is 1000 we have 11seconds/iteration*11000 iterations=11000 seconds (almost 180 minutes=3hours) only to shrink the colon.

Also, due to the huge number of vertices, after 200-300 iterations,vertices are very close one to another. Further averaging does notgenerate appreciable three dimensional movement. This means that theeffect of colon thinning is reduced (especially in the rectum andcecum—which are usually thick). The differences between 1000 iterationsand 2000 iterations are small.

It will be appreciated that we do not need all the vertices suppliedfrom an image of the colon shown in FIG. 1 to compute the shrunkencolon. Therefore, before shrinking we preprocess the 3D colon surface bydecimating the vertex points comprising the image of the colon. Forexample, we prefer to reduce the number of vertices composing thesurface by as much as 80%.

Using a decimated colon image (65000 vertices instead on 350000), theaverage time per iteration is under 0.5 seconds (typically between0.1-0.3 seconds), which leads to an average total time of 3 minutes per1000 iterations. This time can be further improved by increasing thenumber of decimated vertices. If we are using ⅕ of the total number ofpoints even the colon looks nice.

4.2 Interpolation

Since the shrunken colon is smooth, we are using spline functions tointerpolate the first approximation. The interpolated points are thenused to get the get the slices in the shrunken colon and in the originalcolon. Final points are again interpolated (using splines) in order toprovide a smooth curve inside the colon. This last step (interpolationin normal colon) is not necessary—it was implemented only to provide“nicer” (smoother) curves. This could be useful, however, in virtualnavigation—allowing a small image variation between two navigationpoints.

4.3 Shrunken Colon Approximation

The main parameters that control this stage of processing are (see FIG.7B):

-   -   vector of the solid angle for the next vertex;    -   segment of the searched sphere delimited within the solid angle;        and,    -   radius of the searched sphere.

Typical values are summarized in table 5. TABLE 5 Radius Width Angle(min value of cosine) 0.7 * Az/20 0.4 of radius −0.2 < min cos < 0.2where:

-   -   Az=Zmax−Zmin=amplitude of the whole colon on z axis (see FIG. 11        and table 2); and,    -   Radius is expressed as a fraction of Az/20 where 20 is an        empirical value.

The above value (Az/20) is chosen for the following reasons. In order tominimize data processing, we implemented a “locality” mechanism. We sortour vertices based on their Z coordinate (see FIG. 12). The total numberof classes is 20 and each i-th class contain vertices whose Z coordinateis between i*Az/20 and (i+1)*Az/20 (+Z mm) where i=0 . . . 19 (see FIG.12). 20 is an empirical value and is based on the general features ofthe colon. If the processed shape is more twisted this value can beincreased. Actually what matters is how tight are the loops of theshrunken shape: the tighter the loops are, bigger the number of classes.

Referring to FIG. 12, classes are used to minimize the number ofsearches. For every vertex in class i we search the vertices in class i,i-1, i+1. If the total number of classes is 20 we reduce our searches byalmost 85% ((20-3)/20=17/20=0.85—provided each class has the same numberof points). Of course the classes have different number of vertices (forexample class 0 includes only a fraction of rectum vertices) but theprinciple is good and it could even be increased on the X axis (defininga rectangular grid).

The shrunken colon is limited to a k*20 maximum number, where k is again20 (and again empirical), which means no more than 400 points. Thesepoints are interpolated, introducing 3 new points between each 2 oldpoints, and we obtain (400−1)*3+1 total numbers for the shrunken colon.These (almost) 1200 points generate 1200 points in the original colon,which in turn are again interpolated. Finally we have a centerlinecomposed of maximum (1200−1)*3+1 values=cca 3600. We never obtain suchbig values, typically the centerlines are modeled by less than 1000points (500-900).

The colon thickness (diameter) is also important. If this is not smallthe approximating line will be twisted and the slices will not beprocessed accurately.

One solution is to increase the shrinking (either the number ofiterations or the number of decimated vertices). Another solution wouldbe to provide an adaptive sphere radius, function of the colon diameter.This could be made either automatically (compute somehow the colondiameter) or using some a priori known information about colon shape(radius bigger at the beginning for the rectum and at the end for cecum,since these are usually the biggest segments of the colon). We are usingthe first solution in our algorithm. If, at the beginning, we were using500 iterations to shrink, finally the value of 1000 proved to be enoughfor our needs.

Another solution would be to increase the volume/surface averaged(considering not only the corresponding ring but also a part of theprevious and next ring) in the original colon again on some a prioriknown areas where the colon diameter is usually big. We are using thisactually on the whole colon in order to obtain a smoother centerlinethat models the colonoscope.

4.4 Computing Slices in the Original Colon

Using the points that approximate the shrunken colon is easy todetermine slices (rings) as thick as we wish which are perpendicular onthe shrunken colon centerline. Actually the main idea behind theshrunken colon is that the shrunken colon model and its centerline arealmost the same. This is true because the shrunken colon is very thinand smooth, unlike the normal colon.

Importantly, our method enables us to determine the vertices of theshrunken colon that belong to a certain slice (or ring) and then findtheir matching vertices in the original colon. These new vertices (fromthe original colon) form a ring that is more or less perpendicular onthe colon centerline. The edges of this new ring (on the original colon)are not sharp (see FIGS. 11A and 11B) but we can take this ring as thickas we wish.

All the values that right now are manually adjusted for each colon canbe fully determined function of the local features of the colon(diameter).

The whole process described above (excluding shrinking) takes less than3 minutes (almost 2 minutes for a 65000 vertices colon).

The computed slices can be further processed if we want an even moreaccurate centerline. Provided the slices are thin, a possible projectionon a plane perpendicular on the above computed centerline can be used asillustrated in FIG. 13. In order to obtain an individual shape, we willneed to re-index all the vertices. However such a 2D image can beprocessed easier to obtain a better approximation of the centerline.

For example in FIG. 11B, we suggest taking the center of the boundingbox while in our algorithm we use the average of all vertices (which maynot always be inside the colon). In our program, using averaged thickcross-sections of the shrunken colon, we were able to obtain centerlinesthat reside completely inside the normal (not shrunken) colon.

It will be understood that our algorithm uses only the 3D surface, itdoes not need the original CT images. Also it uses the coordinates asthey are, as float numbers. The data does not need to be presented as a3D rectilinear grid. This is one of the big differences comparing withother techniques. We are using vertices connectivity (vertex neighbors)and local vicinity. The resulting centerline is continuous and isinterpolated using spline functions.

The algorithm is “open” which means it can be improved using differenttechniques. The algorithm has basic steps and each one (or at leastparts of them) could be changed and re-implemented using betterapproaches. For example, at some point we manage to get a cross-sectionof the colon. For each cross-section, a number of vertices form a“cylinder” whose axis is on the colon centerline. We average all thesevertices to compute one point on the centerline.

It will be understood that we could use here any other method to computethe center line point: center of the bounding box, axis of theapproximating cylinder computed using minimum of total square error,skeletons and so on.

The technique is fully automated. All the parameters have empiricallydefined values and for normal colons user interaction is not necessary.However if the colons are collapsed (sometimes the CT segmentationmodule fails to determine the colon boundaries), or data acquisition hasgaps, sometimes the shrunken colon modeling stops before the colon end(before the cecum). In such cases we need user interaction (modifyingsearch sphere radius and solid angle) in order to be able to cover thewhole colon.

The technique is relatively quick. Total average processing time is 5minutes, from the original decimated surface to the ordered set of 3Dpoints of the center-line, all the processing being done on a modestmachine—Intel Pentium III PC, 550 MHz (see table 4). It can be furtherimproved increasing the decimation degree for example.

Another important advantage of our technique is that it already providesvirtual fly-path elements (actually these elements are obtained beforecomputing the centerline). The rings computed (slices in the originalcolon) are used to determine the centerline points but their projectionon a plane perpendicular on their axis actually defines what the userwants to see during virtual navigation.

FIG. 11B shows also that, for virtual navigation purposes, the errorsinvolved in centerline computation (if it stays or not inside the colon)don't affect the navigation accuracy. Using the slice's bounding box, wecan provide an accurate and helpful image sequence (which is actuallyequivalent to considering the bounding box center as the centerlinepoint).

Our method is simple. All the steps presented above are only logicallyseparated. Their implementation is quite simple. Although the completeprogram (written in C/C++) takes more than 1000 lines, the mostimportant parts (shrunken colon modeling, vertices re-mapping etc) aresimple functions.

Referring to FIG. 13, given a colon-like surface, we developed a methodto obtain its centerline and to split the surface in slicesperpendicular on its centerline. In FIG. 13 we show the colon centerlinelinearly disposed and how the parameters should be adapted to localconditions (in this case—local diameter) in order to increase the degreeof automation of the whole process.

Centerline is a vital parameter for any CAD (Computer AssistedDiagnostic) tool. For example, a navigation path to display a 2D map ofvertices' distances to the centerline could be generated. Observingasymmetries in the continuum of successive ring structures could improvepolyp detection.

Another application of out method is computing whole colon volume andlocal colon volume: the simplest way to do this would be to considervery thin slices, compute their area and compute local volume bymultiplying each ring area by its height. Adding all these volumes (ofall the colon rings) gives us the whole colon volume.

Referring to FIG. 14, a random chosen selected modeling vertex point VOis designated along the colon length, the point here being adjacent oneend of the shrunken colon image. The reader will understand that thisimage point could be chosen anywhere along the length of the shrunkencolon image—it does not have to necessarily be adjacent one end of thecolon (for example toward the cecum) or the other end of the colon(toward the rectum). (See FIG. 15) A process of neighbor identificationand marking occurs. In the example here shown neighbors Nvo0 throughNvo5 are all identified and marked. Next, from each marked neighbor,identification and marking of previously unmarked neighbors occurs.Taking the example of neighbor vertex Nvo2, three neighboring and aremarked vertices Nvo2_2, Nvo2_1, and Nvo2_0 are all marked. This processcontinues along the colon segment here illustrated. As the reader canunderstand, in the example here illustrated propagation of neighborvertex identification and marking happens to proceed from the left ofFIG. 14 to the right of FIG. 14. It could have just as well occurred inan opposite direction. It will be understood that once directionality ofneighbor identification and marking of vertices is established, thisdirectionality will occur from the arbitrarily selected random vertexpoint VO to an end of the colon.

Referring to FIG. 15, the neighbor vertex identification and markingprocess continues until a located vertices exceeds a predetermineddistance from the random vertex point VO initially designated. When thispredetermined distance plus or minus a tolerance) is reached, thatvertex becomes a second designated modeling vertex V1-1. At this point,neighbor identification and marking will occur as illustrated in FIG. 14until a third selected modeling vertex V1-2 is designated. This two-stepprocess of neighbor identification and marking followed by designationof a modeling vertex will continue until an end of the colon is reached.

Again referring to FIG. 15, the reader will understand that it isnecessary to have the process of neighbor identification and markingfollowed by designation of a modeling vertex in an opposite direction.This opposite direction will be from randomly designated modeling vertexpoint VO (see FIGS. 14 and 15) to the opposite end of the colon. Tobegin this process, once second selected modeling vertex V1-1 isdesignated, an opposite modeling vertex V2-1 is designated in adirection opposite to second selected modeling vertex V1-1 at thepredetermined distance. Once this choice is made, the two-step processof neighbor identification and marking followed by designation ofmodeling of vertices continues to the opposite end of the colon.

Thus, it can be seen that the designation of modeling vertex pointsalong the length of the colon effectively establishes a point trace ofthe shrunken colon image. This has the advantage of avoiding searchesthrough solid angles of view for vertices as set forth in FIG. 6 and iscapable of following colon images having relatively sharp curvature.Further, the disclosed process is simple, iterative, and ideal fordigital processing.

1. An automated detection algorithm to compute the ring profile of colon like surfaces comprising the steps of: providing an original image of a colon like surface disposed along a major axis in a scan having vertex points, each vertex point having a discrete point identifier and three dimensional position information; generating a thin version of the colon like surface utilizing neighbors averaging of the three dimensional position information for every vertex point in the original colon view; modeling the thin version of the colon like surface with an ordered set of 3-D points to produce a curve proximate to the major axis of the colon like surface; isolating segments of vertex points (along) between planes normal to the curve proximate to the major axis of the colon from the thin version of the colon like surface; mapping the isolated segments of vertex points from the thin version of the colon like surface back to the original image of the colon like surface to generate a ring profile of the colon like surface.
 2. The automated detection algorithm to compute the ring profile of colon like surfaces according to claim 1 comprising the steps of: decimating the vertex points of the provided original image.
 3. The automated detection algorithm to compute the ring profile of colon like surfaces according to claim 1 comprising the steps of: computing a centerline of the colon utilizing the ring profile of the colon like surface.
 4. The automated detection algorithm to compute the ring profile of colon like surfaces according to claim 3 comprising the steps of: measuring along the computed centerline of the colon like surface to determine positional information relative to the colon like surface.
 5. The automated detection algorithm to compute the ring profile of colon like surfaces according to claim 3 comprising the steps of: computing a smoothed version of the centerline of the colon to approximate centerlines obtained by invasive colonoscopy.
 6. The automated detection algorithm to compute the ring profile of colon like surfaces according to claim 3 comprising the steps of: utilizing the ring profile along a preselected length of the computed colon centerline to determine the local colon volume and local colon distension along the preselected length of the colon.
 7. The automated detection algorithm to compute the ring profile of colon like surfaces according to claim 3 comprising the steps of: mapping the vertices distance to the computed centerline; and, building an image of vertices distances to centerline to map the colon.
 8. The automated detection algorithm to compute the ring profile of colon like surfaces according to claim 3 comprising the steps of: mapping the vertices distance to the computed centerline to obtain a mapped centerline view of the colon; rotating the mapped centerline view of the colon to spatially reorient the mapped centerline view of the colon; and, reconstructing a spatially reoriented image of the colon from the rotated centerline view by expanding the vertices distances to map the colon.
 9. An automated detection algorithm to compute the ring profile of colon like surfaces comprising the steps of: providing an original image of the colon like surfaces disposed along a major axis in a scan having the colon like surface identified by vertex points, each of vertex point having a discrete point identifier and three-dimensional positional information; generating a thinned image of the colon like surface utilizing a neighbors averaging of the three-dimensional positional information for vertex points in the original colon view; randomly designating a first vertex modeling point at a vertex point along the thinned the colon image; identifying and marking neighboring vertex points to the randomly selected first vertex modeling point; designating a second vertex modeling point located at a predetermined distance from the first of vertex modeling point; sequentially repeating the identifying and marking, and designating steps to designate vertex modeling points from the randomly selected first vertex modeling point to an end of the colon; connecting the designated vertex modeling points to produce a curve proximate to the major axis of the colon like surface; isolating groups of vertex points between planes normal to the curve from the thin image of the colon like surface; and, mapping the isolated groups of a vertex points from the thinned image of the colon like surface back to the original image of the colon like surface to generate a ring profile of the colon like surface.
 10. An automated detection algorithm to compute an approximate centerline profile of colon like surfaces comprising the steps of: providing an original image of the colon like surfaces disposed along a major axis in a scan having the colon like surface identified by vertex points, each of vertex point having a discrete point identifier and three-dimensional positional information; generating a thinned image of the colon like surface utilizing a neighbors averaging of the three-dimensional positional information for vertex points in the original colon view; randomly designating a first vertex modeling point at a vertex point along the thinned the colon image; identifying and marking neighboring vertex points to the randomly selected first vertex modeling point; designating a second vertex modeling point located at a predetermined distance from the first of vertex modeling point; sequentially repeating the identifying and marking, and designating steps to designate vertex modeling points from the randomly selected first vertex modeling point to an end of the colon; connecting the designated vertex modeling points to produce a curve proximate to the major axis of the colon like surface.
 11. An automated detection algorithm to compute the ring profile of colon like surfaces comprising the steps of: providing an original image of the colon like surfaces disposed along a major axis in a scan having the colon like surface identified by vertex points, each of vertex point having a discrete point identifier and three-dimensional positional information; generating a thinned image of the colon like surface utilizing a neighbors averaging of the three-dimensional positional information for vertex points in the original colon view; randomly designating a first vertex modeling point at a vertex point along the thinned the colon image; identifying and marking neighboring vertex points to the randomly selected first vertex modeling point; designating a second vertex modeling point located at a predetermined distance from the first of vertex modeling point; sequentially repeating the identifying and marking, and designating steps to designate vertex modeling points from the randomly selected first vertex modeling point to an end of the colon; connecting the designated vertex modeling points to produce a curve proximate to the major axis of the colon like surface; isolating groups of vertex points between planes normal to the curve from the thin image of the colon like surface; and, mapping the isolated groups of a vertex points from the thinned image of the colon like surface back to the original image of the colon like surface to generate a ring profile of the colon like surface.
 12. An automated detection algorithm to compute an approximate centerline profile of colon like surfaces comprising the steps of: providing an original image of the colon like surfaces disposed along a major axis in a scan having the colon like surface identified by vertex points, each of vertex point having a discrete point identifier and three-dimensional positional information; generating a thinned image of the colon like surface utilizing a neighbors averaging of the three-dimensional positional information for vertex points in the original colon view; randomly designating a first vertex modeling point at a vertex point along the thinned the colon image; identifying and marking neighboring vertex points to the randomly selected first vertex modeling point; designating a second vertex modeling point located at a predetermined distance from the first of vertex modeling point; sequentially repeating the identifying and marking, and designating steps to designate vertex modeling points from the randomly selected first vertex modeling point to an end of the colon; connecting the designated vertex modeling points to produce a curve proximate to the major axis of the colon like surface. 